home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 3347 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.3 KB

  1. Path: mail2news.demon.co.uk!genesis.demon.co.uk
  2. From: Lawrence Kirby <fred@genesis.demon.co.uk>
  3. Newsgroups: comp.lang.c
  4. Subject: Re: Matrix Multiplication
  5. Date: Sun, 28 Jan 96 01:33:32 GMT
  6. Organization: none
  7. Message-ID: <822792812snz@genesis.demon.co.uk>
  8. References: <1996Jan22.110440@gamma.ntu.ac.sg> <4ecjv4$fn2@tamarack.cs.mtu.edu>
  9. Reply-To: fred@genesis.demon.co.uk
  10. X-NNTP-Posting-Host: genesis.demon.co.uk
  11. X-Newsreader: Demon Internet Simple News v1.27
  12. X-Mail2News-Path: genesis.demon.co.uk
  13.  
  14. In article <4ecjv4$fn2@tamarack.cs.mtu.edu> sjang@mtu.edu "Saurabh Jang" writes:
  15.  
  16. >Consider optimizing for cache performance.
  17. >
  18. >for ( i = 0; i < N; i++ )
  19. >   for ( j = 0; j < N; j++ )
  20. >   {
  21. >      c[i][j] = 0.0;
  22. >
  23. >      for ( k = 0; k < N; k++ )
  24. >      {
  25. >         c[i][j] = c[i][j] + a[i][k]*b[k][j];
  26. >      }
  27. >   }
  28.  
  29. Or how about:
  30.  
  31. for ( i = 0; i < N; i++ )
  32. {
  33.    for ( j = 0; j < N; j++ )
  34.    {
  35.       double sum = 0.0;   /* Possibly use register if it makes a difference */
  36.  
  37.       for ( k = 0; k < N; k++ )
  38.          sum += a[i][k]*b[k][j];
  39.  
  40.       c[i][j] = sum;
  41.    }
  42. }
  43.  
  44. You compiler might be able to perform that optimisation for itself but
  45. aliasing issues may make the analysis difficult.
  46.  
  47. -- 
  48. -----------------------------------------
  49. Lawrence Kirby | fred@genesis.demon.co.uk
  50. Wilts, England | 70734.126@compuserve.com
  51. -----------------------------------------
  52.